package com.itany.corejava.code17_设计模式.模板模式;

/**
 * @author MissChen
 * @date 2024年03月27日 11:12
 */
public class SortTemplate {
    public static <T> void sort(T[] arr,SortComparator<T> sc){
        //先制定一个顶层逻辑架构
        for (int i = 1; i < arr.length; i++) {//外层循环控制比较的轮数
            for (int j = 0; j < arr.length - i; j++) {//内层循环控制每轮比较的次数

                //将具体的实现细节留给具体的方法调用者进行实现
                // 对于这个位置的排序而言，唯一的区别是什么时候交换
                int result=sc.compareTo(arr[j],arr[j+1]);
                if(result>0){
                    T temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }

            }
        }

    }
}
